package com.ssm.order.config;

import com.alibaba.cloud.sentinel.annotation.SentinelRestTemplate;
import com.ssm.order.exception.RestTemplateExceptionHandler;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfig {

    @Bean
    @ConditionalOnMissingBean(RestTemplate.class)
    @LoadBalanced
    @SentinelRestTemplate(
            blockHandler = "blockHandler", blockHandlerClass = RestTemplateExceptionHandler.class,
            fallback = "fallback", fallbackClass = RestTemplateExceptionHandler.class)
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
